package at.guigu.dao;

import at.guigu.pojo.Book;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;

@Mapper
public interface BookDao {
    /*-----------------------查询数据-------------------------*/
    // 查询所有数据
    @Select("select * from tbl_book")
    public List<Book> getAll();
    // 查询单条数据：通过id查询
    @Select("select * from tbl_book where id = #{id}")
    public Book getById(Integer id);

    // 静态单条件查询
    List<Book> selectBySingleConOne(Integer id);
    // 动态单条件查询——对象参数接收
    List<Book> selectBySingleConTwo(Book book);
    // 动态单条件查询——Map集合参数接收
    List<Book> selectBySingleConTwoo(Map map);
    // 动态多条件查询——对象参数接收
    List<Book> selectByMaxConOne(Book book);
    // 动态多条件查询——Map集合参数接收
    List<Book> selectByMaxConTwo(Map map);

    /*-----------------------添加/保存数据-------------------------*/
    //@Insert("insert into tbl_book values(null,#{type},#{name},#{description})")
    @Insert("insert into tbl_book (type,name,description) values(#{type},#{name},#{description})")
    public int save(Book book);  //返回值表示影响的行数

    /*-----------------------更新/修改数据-------------------------*/
    @Update("update tbl_book set type = #{type}, name = #{name}, description = #{description} where id = #{id}")
    public int update(Book book);

    /*-----------------------删除数据-------------------------*/
    // 单条删除
    @Delete("delete from tbl_book where id = #{id}")
    public int deleteById(Integer id);
    // 批量删除
    int deleteByIds(Integer[] ids);
}
